Integrated circuits such as programmable logic device integrated circuits (sometimes referred to herein as “PLDs”) include circuitry that is dedicated to performing specific tasks. This dedicated circuitry is often referred to as “microprocessors” or “embedded processor components.”
A PLD may also include many regions of programmable logic that are interconnected in a variety of different ways by programmable interconnection resources. Each logic region is configured to perform any of several logic functions on input signals applied to that region from the interconnection resources. As a result of the logic function it implements, each logic region produces one or more output signals that can be fed to any other logic region via the programmable interconnect resources.
As described above, a PLD may include both programmable logic regions and dedicated (i.e., at least partly hard-wired) microprocessor circuitry. Such dedicated microprocessor circuitry can perform at least some of the tasks that are typically associated with microprocessors more rapidly than those performed by general-purpose, programmable logic provided elsewhere on the PLD.
Although having a dedicated, full-featured microprocessor on a PLD may be advantageous in some situations, there are also many situations in which only certain features or functions of a dedicated microprocessor need to be performed at the greater speeds typically achievable with dedicated, hard-wired circuitry. In these cases, much of the full-featured microprocessor circuitry may be essentially unused and therefore wasted. On the other hand, a general-purpose programmable processor may not be the most efficient circuit for performing certain tasks such as digital signal processing (DSP) or very long instruction word (VLIW) processing, where it is frequently desired to perform multiple operations in parallel.
It is within this context that the embodiments described herein arise.